<template>
  <div class="father">
    <h3>父组件【作用域插槽，子组件给父组件传递数据】</h3>
    <div class="content">
      <!-- 同一自定义组件，但是里面的结构不确定的话，就可以使用插槽 -->
      <!-- 如果数据在子组件身上，但是父组件需要使用该数据的话，就可以使用作用域插槽 -->
      <Game>
        <!-- 此处在v-slot等于params的时候，是因为Game.vue组件在插槽的位置将数据传递回来的，此时就可以使用了，然后使用params获取到Game.vue组件里面定义的youxi -->
        <template v-slot="params">
          <ul>
            <li v-for="y in params.youxi" :key="y.id">
              {{ y.name }}
            </li>
          </ul>
        </template>
      </Game>

      <Game>
        <template v-slot="params">
          <ol>
            <li v-for="item in params.youxi" :key="item.id">
              {{ item.name }}
            </li>
          </ol>
        </template>
      </Game>

      <Game>
        <!-- 上述是使用params进行.点调用的，下面是通过赋值结构的形式实现 -->
        <!-- 其中作用域插槽不写名字的话，就是默认名字，而默认名字就是default，如果有名字的话，就可以使用v-slot:插槽名称 -->
        <template #default="{ youxi }">
          <h3 v-for="g in youxi" :key="g.id">{{ g.name }}</h3>
        </template>
      </Game>
    </div>
  </div>
</template>

<script setup lang="ts" name="Father">
import Game from './Game.vue'
</script>

<style scoped>
.father {
  background-color: rgb(165, 164, 164);
  padding: 20px;
  border-radius: 10px;
}
.content {
  display: flex;
  justify-content: space-evenly;
}
img,
video {
  width: 100%;
}
</style>
